﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;

namespace WF_Office_Verwaltung
{
    public partial class Wartungsvertragformular : Form
    {
        int akt_Kunde;
        string Wartungsvertrag= "-1" ;

        public Wartungsvertragformular(int _akt_Kunde)
        {
            akt_Kunde = _akt_Kunde;
            InitializeComponent();
        }

        private void Wartungsvertragformular_Load(object sender, EventArgs e)
        {
            using (var context = new project_entities())
            {
                var akt_Kunde_WV = context.sp_Wartungsvertrag(akt_Kunde).ToList();
                dgv_akt_Kunde_WV.DataSource = akt_Kunde_WV;
                befülleGridView(dgv_akt_Kunde_WV);
            }
        }

        private void befülleGridView(DataGridView dgv_akt_Kunde_WV)
        {
            for (int i = 0; i < dgv_akt_Kunde_WV.Rows.Count; i++)
            {
                string gelöscht = dgv_akt_Kunde_WV.Rows[i].Cells["Gelöscht"].FormattedValue.ToString();
                if (gelöscht == "True")
                {
                    dgv_akt_Kunde_WV.Rows[i].DefaultCellStyle.BackColor = Color.LightGray;
                    dgv_akt_Kunde_WV.Rows[i].DefaultCellStyle.SelectionBackColor = Color.LightGray;
                }
            }
        }

        private void btn_neuerVertrag_Click(object sender, EventArgs e)
        {
            Wartungsvertrag = "-1";
            Vertrag_neu frm_neuer_vertrag = new Vertrag_neu(Wartungsvertrag, akt_Kunde);
            frm_neuer_vertrag.Show();
        }

        /// <summary>
        /// Behandelt den Doubleclick auf die dgv öffnet dabei den entsprechenden Wartungsvertrag im neuen Dialog
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgv_akt_Kunde_WV_DoubleClick(object sender, EventArgs e)
        {
            Wartungsvertrag = dgv_akt_Kunde_WV.Rows[dgv_akt_Kunde_WV.CurrentRow.Index].Cells["ID_Wartungsvertrag"].Value.ToString();
            Vertrag_neu frm_neuer_Vertrag = new Vertrag_neu(Wartungsvertrag, akt_Kunde);
            frm_neuer_Vertrag.Show();
        }

        public void btn_Aktualisieren_Click(object sender, EventArgs e)
        {
            using (var context = new project_entities())
            {
                var akt_Kunde_WV = context.sp_Wartungsvertrag(akt_Kunde).ToList();
                dgv_akt_Kunde_WV.DataSource = akt_Kunde_WV;
                befülleGridView(dgv_akt_Kunde_WV);

            }
        }

        private void btn_Vertrag_Löschen_Click(object sender, EventArgs e)
        {
            using (var context = new project_entities())
            {
                string zuLöschenderVertrag = "";

                zuLöschenderVertrag = dgv_akt_Kunde_WV.Rows[dgv_akt_Kunde_WV.CurrentRow.Index].Cells["ID_Wartungsvertrag"].Value.ToString();
                int vertragsID = int.Parse(zuLöschenderVertrag);
                var query = (from wartungsvertrag in context.Wartungsvertrag
                             where wartungsvertrag.ID_Wartungsvertrag == vertragsID
                            select wartungsvertrag).First();
                query.Gelöscht = true;
                context.SaveChanges();
            }
        }
    }
}
